Utiliser un filtre WordPress

Exemple: dans les pages “Archive de catégorie”, vous souhaitez supprimer le préfixe : au lieu de “Category: Workshops”, vous aimeriez afficher simplement “Workshops”.

Commencez par chercher comment ce titre est généré. En se basant sur la “Template Hierarchy”, on parcourt les fichiers de notre theme à la recherche du template archive.php.

On trouvera un code ressemblant à ceci:

the_archive_title( '<h1 class="page-title">', '</h1>' );

On voit que le titre est généré par une fonction nommée the_archive_title(). En parcourant le thème, on ne trouve pas la définition de cette fonction. Est-ce que ce serait une fonction incluse dans le noyau de WordPress?

Bingo! Une recherche dans les fichiers de WordPress nous permet de trouver la définition de the_archive_title(). On y découvre que le titre est produit avec get_the_archive_title(), et que cette fonction comporte un filtre nommé get_the_archive_title.

Un filtre, dans WordPress, c’est une possibilitée donnée aux utilisateurs avancés d’influer sur un processus, en “filtrant” ce qui entre et ce qui sort. Ce filtre nous sera très utile, car il nous permet de modifier à volonté le rendu de ce titre.

Voici un exemple d’utilisation de ce filtre (à placer dans le fichier functions.php de votre thème, ou dans un plugin custom):

add_filter( 'get_the_archive_title', function ( $title ) {
    if( is_category() ) {
        $title = single_cat_title( '', false );
    }
    return $title;
});

Ici, on vérifie si on est dans une page “Catégorie”. Si c’est le cas, on retourne simplement le titre, sans le préfixe “Category”. Et le tour est joué!